package Java语言.数据结构.链表.双头列表;

import java.util.LinkedList;
import java.util.ListIterator;

public class LinkedListExample {//好用极了，能插头尾
    public static void main(String[] args) {
        LinkedList<Integer> ll=new LinkedList<Integer>(){{add(1);addLast(1);}};

        //队列添加
        ll.add(1);
        ll.addLast(1);
        //栈添加
        ll.addFirst(1);
        ll.push(1);
        //删除
        ll.remove();
        ll.poll();
        ll.pollFirst();
        ll.removeFirst();
        ll.pop();
        //查看
        ll.peek();
        ll.peekFirst();
        ll.getFirst();

        //以下组成链表
        //下标能获得当前值，迭代器能获得下一个或前一个的值，还能获得Index
        LinkedList<Integer> ll2=new LinkedList<Integer>(){{add(1);}};
        ListIterator<Integer> li=ll2.listIterator();
        li.add(2);//变成1，无遍历

        System.out.println(ll2);
        System.out.println(li.previous());//线0，遍历0
        li.set(3);//修改0
        li.set(4);//修改0
        System.out.println(li.previousIndex());
        System.out.println(li.nextIndex());
        System.out.println(ll2);

        //以下组成数组
        for (int i = 0; i <ll2.size(); i++) {
                    ll2.get(i);
                    ll2.set(i,1);

        }
        System.out.println(ll2);
    }
}
